package splar.core.heuristics;
import java.util.ArrayList;
import java.util.List;
import splar.core.constraints.BooleanVariableInterface;
import splar.core.constraints.CNFFormula;
public class RandomVariableOrderingHeuristic extends VariableOrderingHeuristic {
public RandomVariableOrderingHeuristic(String name) {
super(name);
}
// generates a random variable ordering
// useful for benchmark purposes
public String[] runHeuristic(CNFFormula cnf) {
List<BooleanVariableInterface> variables = new ArrayList<BooleanVariableInterface>();
variables.addAll(cnf.getVariables());
java.util.Collections.shuffle(variables);
String varOrder[] = new String[variables.size()];
int i = 0;
for( BooleanVariableInterface var : variables ) {
varOrder[i++] = var.getID();
}
return varOrder;
}
}